function countSort(arr){
    if(arr===null||arr.length<2){
        return;
    }

    let count = [];
    // 求最大最小值
    let maxItem = Math.max.apply(Math,arr);   
    let minItem = Math.min.apply(Math,arr);
    // 初始化桶 
    for(let i = 0;i<arr.length;i++){
        count[arr[i]] = (count[arr[i]]||0)+1;
    }
    // 输出桶 桶的size 最大等于maxValue
    let index = 0;
    for(let i = minItem;i<maxItem+1;i++){
        while(count[i]--){
            arr[index++] = i; 
        }
    }
    return arr;
}

let arr = [1,89,10,5,56,123];
console.log(countSort(arr));